package com.ethink.warehouse.api;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.warehouse.api.info.MateInventoryOtherOutLogDetailInfo;
import com.ethink.warehouse.api.request.MateInventoryOtherOutLogDetailAddRequest;
import com.ethink.warehouse.api.request.MateInventoryOtherOutLogDetailQueryRequest;
import com.ethink.warehouse.api.request.MateInventoryOtherOutLogDetailUpdateRequest;
import com.ethink.warehouse.api.response.MateInventoryOtherOutLogDetailAddResponse;
import com.ethink.warehouse.api.response.MateInventoryOtherOutLogDetailDeleteResponse;
import com.ethink.warehouse.api.response.MateInventoryOtherOutLogDetailUpdateResponse;
import java.util.List;

/**
 * 其他出库明细 Facade接口
 *
 * @author default
 * @date 2023-02-08
 */
@FeignClient(name = "ethink-warehouse-service", path = "warehouse-service/facade/v1/mateInventoryOtherOutLogDetail", contextId = "mateInventoryOtherOutLogDetailFacade")
public interface MateInventoryOtherOutLogDetailFacade {

    @PostMapping("/queryMateInventoryOtherOutLogDetail")
    @ResponseBody
    Page<MateInventoryOtherOutLogDetailInfo> queryMateInventoryOtherOutLogDetail(@RequestBody MateInventoryOtherOutLogDetailQueryRequest request);

    @PostMapping("/getMateInventoryOtherOutLogDetailById")
    @ResponseBody
    MateInventoryOtherOutLogDetailInfo getMateInventoryOtherOutLogDetailById(@RequestParam("mateInventoryOtherOutLogDetailId") Long mateInventoryOtherOutLogDetailId);

    @PostMapping("/listMateInventoryOtherOutLogDetail")
    @ResponseBody
    List<MateInventoryOtherOutLogDetailInfo> listMateInventoryOtherOutLogDetail(@RequestBody MateInventoryOtherOutLogDetailQueryRequest request);

    @PostMapping("/addMateInventoryOtherOutLogDetail")
    @ResponseBody
    MateInventoryOtherOutLogDetailAddResponse addMateInventoryOtherOutLogDetail(@RequestBody MateInventoryOtherOutLogDetailAddRequest request);

    @PostMapping("/updateMateInventoryOtherOutLogDetail")
    @ResponseBody
    MateInventoryOtherOutLogDetailUpdateResponse updateMateInventoryOtherOutLogDetail(@RequestBody MateInventoryOtherOutLogDetailUpdateRequest request);

    @PostMapping("/deleteMateInventoryOtherOutLogDetail")
    @ResponseBody
    MateInventoryOtherOutLogDetailDeleteResponse deleteMateInventoryOtherOutLogDetail(@RequestParam("mateInventoryOtherOutLogDetailId") Long mateInventoryOtherOutLogDetailId);

}